package com.djl.service;

import com.djl.crowd.entity.Admin;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface AdminService {

    /**
     * 保存管理员信息
     *
     * @param admin
     * @return
     */
    int save(Admin admin);

    /**
     * 获取管理员信息构成的集合
     *
     * @return
     */
    List<Admin> getAll();

    /**
     * 根据账户密码查询管理员信息
     *
     * @param loginAcct
     * @param userPswd
     * @return
     */
    Admin getAdminByLoginAcct(String loginAcct, String userPswd);

    /**
     * @param keyword
     * @param pageNum  分页页码
     * @param pageSize 每页大小
     * @return
     */
    PageInfo<Admin> getPageByKeyword(String keyword, Integer pageNum, Integer pageSize);

    /**
     * 根据管理员id删除用户
     *
     * @param adminId
     * @return
     */
    int remove(Integer adminId);

    /**
     * 根据管理员id查询管理员信息
     *
     * @param adminId
     * @return
     */
    Admin getAdminById(Integer adminId);

    /**
     * 有选择的 更新管理员信息
     *
     * @param admin
     */
    void update(Admin admin);

    /**
     * 保存用户角色关联关系
     *
     * @param roleIdList
     * @param adminId
     */
    void saveAdminRoleRelationship(List<Integer> roleIdList, Integer adminId);

    /**
     * 根据账号查询admin
     * @param username
     * @return
     */
    Admin getAdminByLoginAcct(String username);
}
